package paginas;

import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ResourceBundle;
import java.util.Vector;

import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.SwingConstants;

import modelUtil.Util;
import usuario.usuarioTO.UsuarioTO;
import util.BotonPersonalizado;
import util.TransicionBotones;
import AccionBoton.AccionCerrar;
import AccionBoton.AccionFocoCreditos;
import AccionBoton.AccionGuardarUsuario;
import AccionBoton.AccionLanzarAyuda;
import fachadaUsuario.delegate.UsuarioFacade;

public class PaginaCrearUsuario extends JDialog{



	private static final long serialVersionUID = 1L;
	private JTabbedPane _panel;
	private JPanel botones;
	//private JPanel tab3;
	private JPanel tab1;
	private JPanel tab2;
	private UsuarioTO _user;
	private PaginaEntornoCreacion _frame;
	private String edit ="No";
	private BotonPersonalizado ayuda;
	private BotonPersonalizado aceptar;
	private BotonPersonalizado cancelar;
	private TransicionBotones policy;



	public PaginaCrearUsuario(String usuario, PaginaEntornoCreacion frame){
		
		UsuarioFacade fachada = new UsuarioFacade();
		_user = fachada.BuscarUsuario(usuario);

		edit = "Si";
		_frame = frame;
		initComponents2();
		
        Vector<Component> order = new Vector<Component>(7);
        order.add(tab1);
        order.add(tab2);
        //order.add(tab3);
        order.add(ayuda);
        order.add(aceptar);
        order.add(cancelar);
       

        _frame.addWindowFocusListener(new WindowAdapter() {
    	    public void windowGainedFocus(WindowEvent e) {
    		    tab1.requestFocusInWindow(); 
    	    }
    	});
       _frame.setFocusable(true);
       policy = new TransicionBotones(order);
       _frame.setFocusTraversalPolicy(policy);
		setModal(false);
		setAlwaysOnTop(true);
		this.setBounds(0, 0, 600, 600);
		this.setLocationRelativeTo(null);
		this.setVisible(true);
		
	}
	
	public PaginaCrearUsuario(PaginaEntornoCreacion frame){
		

		setModal(false);
		setAlwaysOnTop(true);
		_frame = frame;
		initComponents();
		this.setBounds(0, 0, 600, 600);

		this.setLocationRelativeTo(null);
		this.setVisible(true);
			
	}
	
	
	private void initComponents(){
		
		GridBagLayout grid = new GridBagLayout();
		GridBagConstraints cons = new GridBagConstraints();
		
		cons.gridwidth = 1;
		cons.gridheight = 1;
		this.setLayout(grid);
		cons.gridx=0;
		cons.gridy = 0;
		_panel = new JTabbedPane();
		_panel.setPreferredSize(new Dimension(500,450));
		botones = new JPanel();

		grid.addLayoutComponent(_panel, cons);
		this.add(_panel);
		tab1 = new MenuUsuarioDatosTab();
		tab2 = new MenuUsuarioBarridoTab();
		//tab3 = new MenuUsuarioVozTab();
		
		_panel.addTab(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_usuario_tab1"), tab1);
		_panel.addTab(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_config_titulo_tab3"), tab2);
		//_panel.addTab(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_usuario_tab3"), tab3);

		ayuda = Util.BotonImagen(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_popup_admin_ayuda"), "lib//Resources//Ayuda.png");
		aceptar = Util.BotonImagen(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_popup_admin_aceptar"), "lib//Resources//Aceptar.png");
		cancelar = Util.BotonImagen(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_popup_admin_cancelar"), "lib//Resources//Cancelar.png");
		
		ayuda.getLabelImagen().setHorizontalAlignment(SwingConstants.LEFT);
		aceptar.getLabelImagen().setHorizontalAlignment(SwingConstants.LEFT);
		cancelar.getLabelImagen().setHorizontalAlignment(SwingConstants.LEFT);
		
		ayuda.getLabelTexto().setHorizontalAlignment(SwingConstants.RIGHT);
		aceptar.getLabelTexto().setHorizontalAlignment(SwingConstants.RIGHT);
		cancelar.getLabelTexto().setHorizontalAlignment(SwingConstants.RIGHT);

		ayuda.setBackground(new Color(238, 238, 238));
		aceptar.setBackground(new Color(238, 238, 238));
		cancelar.setBackground(new Color(238, 238, 238));
		
		ayuda.setMnemonic(KeyEvent.VK_Y);
		ayuda.getLabelTexto().setDisplayedMnemonic(KeyEvent.VK_Y);
		ayuda.getLabelTexto().getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_menu_ayuda"));
		ayuda.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_menu_ayuda"));
		
		aceptar.setMnemonic(KeyEvent.VK_A);
		aceptar.getLabelTexto().setDisplayedMnemonic(KeyEvent.VK_A);
		aceptar.getLabelTexto().getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_aceptar_creacion_usuario"));
		aceptar.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_aceptar_creacion_usuario"));
		
		cancelar.setMnemonic(KeyEvent.VK_C);
		cancelar.getLabelTexto().setDisplayedMnemonic(KeyEvent.VK_C);
		cancelar.getLabelTexto().getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_cancelar_creacion_usuario"));
		cancelar.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_cancelar_creacion_usuario"));
		
		ayuda.setPreferredSize(new Dimension(150,50));
		aceptar.setPreferredSize(new Dimension(150,50));
		cancelar.setPreferredSize(new Dimension(150,50));

		ayuda.setFocusable(true);
		aceptar.setFocusable(true);
		cancelar.setFocusable(true);
		
		ayuda.addFocusListener(new AccionFocoCreditos(ayuda));
		aceptar.addFocusListener(new AccionFocoCreditos(aceptar));
		cancelar.addFocusListener(new AccionFocoCreditos(cancelar));
		
		ayuda.addActionListener(new AccionLanzarAyuda(this));
		aceptar.addActionListener(new AccionGuardarUsuario(_panel,_frame,edit));
		cancelar.addActionListener(new AccionCerrar(this,_frame));
		
		FlowLayout flow = new FlowLayout();
		botones.setLayout(flow);
		flow.setAlignment(FlowLayout.CENTER);
		flow.addLayoutComponent("ayuda", ayuda);
		botones.add(ayuda);
		flow.addLayoutComponent("aceptar", aceptar);
		botones.add(aceptar);
		flow.addLayoutComponent("cancelar", cancelar);
		botones.setPreferredSize(new Dimension(500,100));
		botones.add(cancelar);
		cons.insets = new Insets(15, 0, 0, 0);
		cons.gridx=0;
		cons.gridy=1;
		grid.addLayoutComponent(botones, cons);
		this.add(botones);
				
	}

	private void initComponents2(){
		
		GridBagLayout grid = new GridBagLayout();
		GridBagConstraints cons = new GridBagConstraints();
		
		cons.gridwidth = 1;
		cons.gridheight = 1;
		this.setLayout(grid);
		cons.gridx=0;
		cons.gridy = 0;
		_panel = new JTabbedPane();
		_panel.setPreferredSize(new Dimension(500,450));

		botones = new JPanel();

		grid.addLayoutComponent(_panel, cons);
		this.add(_panel);
		tab1 = new MenuUsuarioDatosTab(_user);
		tab2 = new MenuUsuarioBarridoTab(_user);
		//tab3 = new MenuUsuarioVozTab(_user);
		
		_panel.addTab(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_usuario_tab1"), tab1);
		_panel.addTab(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_config_titulo_tab3"), tab2);
		//_panel.addTab(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_usuario_tab3"), tab3);

		ayuda = Util.BotonImagen(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_popup_admin_ayuda"), "lib//Resources//Ayuda.png");
		aceptar = Util.BotonImagen(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_popup_admin_aceptar"), "lib//Resources//Aceptar.png");
		cancelar = Util.BotonImagen(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_popup_admin_cancelar"), "lib//Resources//Cancelar.png");
		
		ayuda.getLabelImagen().setHorizontalAlignment(SwingConstants.LEFT);
		aceptar.getLabelImagen().setHorizontalAlignment(SwingConstants.LEFT);
		cancelar.getLabelImagen().setHorizontalAlignment(SwingConstants.LEFT);
		
		ayuda.getLabelTexto().setHorizontalAlignment(SwingConstants.RIGHT);
		aceptar.getLabelTexto().setHorizontalAlignment(SwingConstants.RIGHT);
		cancelar.getLabelTexto().setHorizontalAlignment(SwingConstants.RIGHT);
		
		ayuda.setBackground(new Color(238, 238, 238));
		aceptar.setBackground(new Color(238, 238, 238));
		cancelar.setBackground(new Color(238, 238, 238));
		
		ayuda.setFocusable(true);
		aceptar.setFocusable(true);
		cancelar.setFocusable(true);
		
		ayuda.addFocusListener(new AccionFocoCreditos(ayuda));
		aceptar.addFocusListener(new AccionFocoCreditos(aceptar));
		cancelar.addFocusListener(new AccionFocoCreditos(cancelar));
		

		ayuda.setMnemonic(KeyEvent.VK_Y);
		ayuda.getLabelTexto().setDisplayedMnemonic(KeyEvent.VK_Y);
		ayuda.getLabelTexto().getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_menu_ayuda"));
		ayuda.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_menu_ayuda"));
		
		aceptar.setMnemonic(KeyEvent.VK_A);
		aceptar.getLabelTexto().setDisplayedMnemonic(KeyEvent.VK_A);
		aceptar.getLabelTexto().getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_aceptar_creacion_usuario"));
		aceptar.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_aceptar_creacion_usuario"));
		
		cancelar.setMnemonic(KeyEvent.VK_A);
		cancelar.getLabelTexto().setDisplayedMnemonic(KeyEvent.VK_A);
		cancelar.getLabelTexto().getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_cancelar_creacion_usuario"));
		cancelar.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_cancelar_creacion_usuario"));
		
		ayuda.setPreferredSize(new Dimension(150,50));
		aceptar.setPreferredSize(new Dimension(150,50));
		cancelar.setPreferredSize(new Dimension(150,50));
		
		ayuda.addActionListener(new AccionLanzarAyuda(this));
		aceptar.addActionListener(new AccionGuardarUsuario(_panel,_frame,edit));
		cancelar.addActionListener(new AccionCerrar(this,_frame));

		botones.add(ayuda);
		botones.add(aceptar);
		botones.add(cancelar);
		botones.setPreferredSize(new Dimension(500,100));
		cons.insets = new Insets(15, 0, 0, 0);
		cons.gridx=0;
		cons.gridy=1;
		grid.addLayoutComponent(botones, cons);
		this.add(botones);
				
	}

	public JPanel getTab1() {
		return tab1;
	}


	public void setTab1(JPanel tab1) {
		this.tab1 = tab1;
	}
	
}
